{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 行列重采样参数调整"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 导入工具包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T13:35:05.296988Z",
     "start_time": "2018-10-27T13:35:05.252986Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "import graphviz\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T06:21:32.242464Z",
     "start_time": "2018-10-27T06:21:31.353413Z"
    }
   },
   "source": [
    "## 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T13:35:09.671238Z",
     "start_time": "2018-10-27T13:35:06.669067Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "dpath = './data/'\n",
    "train = pd.read_csv(dpath +\"RentListingInquries_FE_train.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T13:35:09.862249Z",
     "start_time": "2018-10-27T13:35:09.685239Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train = train.drop('interest_level', axis = 1)\n",
    "y_train = train['interest_level']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T06:22:03.514252Z",
     "start_time": "2018-10-27T06:22:03.484251Z"
    }
   },
   "source": [
    "## 参数调试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T13:35:09.916252Z",
     "start_time": "2018-10-27T13:35:09.879250Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# prepare cross validation\n",
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "第二轮参数调整得到的n_estimators最优值（306），其余参数继续保持。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T13:35:14.994543Z",
     "start_time": "2018-10-27T13:35:14.964541Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'colsample_bytree': [0.6, 0.7, 0.8, 0.9],\n",
       " 'subsample': [0.3, 0.4, 0.5, 0.6, 0.7, 0.8]}"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "subsample = [i/10.0 for i in range(3,9)]\n",
    "colsample_bytree = [i/10.0 for i in range(6,10)]\n",
    "param_test5 = dict(subsample=subsample, colsample_bytree=colsample_bytree)\n",
    "param_test5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T22:58:25.612255Z",
     "start_time": "2018-10-27T13:35:15.854592Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_search.py:761: DeprecationWarning: The grid_scores_ attribute was deprecated in version 0.18 in favor of the more elaborate cv_results_ attribute. The grid_scores_ attribute will not be available from 0.20\n",
      "  DeprecationWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "([mean: -0.58759, std: 0.00294, params: {'colsample_bytree': 0.6, 'subsample': 0.3},\n",
       "  mean: -0.58547, std: 0.00391, params: {'colsample_bytree': 0.6, 'subsample': 0.4},\n",
       "  mean: -0.58328, std: 0.00307, params: {'colsample_bytree': 0.6, 'subsample': 0.5},\n",
       "  mean: -0.58289, std: 0.00375, params: {'colsample_bytree': 0.6, 'subsample': 0.6},\n",
       "  mean: -0.58212, std: 0.00317, params: {'colsample_bytree': 0.6, 'subsample': 0.7},\n",
       "  mean: -0.58150, std: 0.00301, params: {'colsample_bytree': 0.6, 'subsample': 0.8},\n",
       "  mean: -0.58727, std: 0.00404, params: {'colsample_bytree': 0.7, 'subsample': 0.3},\n",
       "  mean: -0.58473, std: 0.00384, params: {'colsample_bytree': 0.7, 'subsample': 0.4},\n",
       "  mean: -0.58324, std: 0.00384, params: {'colsample_bytree': 0.7, 'subsample': 0.5},\n",
       "  mean: -0.58260, std: 0.00368, params: {'colsample_bytree': 0.7, 'subsample': 0.6},\n",
       "  mean: -0.58172, std: 0.00379, params: {'colsample_bytree': 0.7, 'subsample': 0.7},\n",
       "  mean: -0.58068, std: 0.00396, params: {'colsample_bytree': 0.7, 'subsample': 0.8},\n",
       "  mean: -0.58696, std: 0.00437, params: {'colsample_bytree': 0.8, 'subsample': 0.3},\n",
       "  mean: -0.58601, std: 0.00400, params: {'colsample_bytree': 0.8, 'subsample': 0.4},\n",
       "  mean: -0.58363, std: 0.00395, params: {'colsample_bytree': 0.8, 'subsample': 0.5},\n",
       "  mean: -0.58341, std: 0.00314, params: {'colsample_bytree': 0.8, 'subsample': 0.6},\n",
       "  mean: -0.58153, std: 0.00369, params: {'colsample_bytree': 0.8, 'subsample': 0.7},\n",
       "  mean: -0.58068, std: 0.00367, params: {'colsample_bytree': 0.8, 'subsample': 0.8},\n",
       "  mean: -0.58649, std: 0.00324, params: {'colsample_bytree': 0.9, 'subsample': 0.3},\n",
       "  mean: -0.58442, std: 0.00345, params: {'colsample_bytree': 0.9, 'subsample': 0.4},\n",
       "  mean: -0.58388, std: 0.00422, params: {'colsample_bytree': 0.9, 'subsample': 0.5},\n",
       "  mean: -0.58226, std: 0.00381, params: {'colsample_bytree': 0.9, 'subsample': 0.6},\n",
       "  mean: -0.58194, std: 0.00348, params: {'colsample_bytree': 0.9, 'subsample': 0.7},\n",
       "  mean: -0.58084, std: 0.00363, params: {'colsample_bytree': 0.9, 'subsample': 0.8}],\n",
       " {'colsample_bytree': 0.7, 'subsample': 0.8},\n",
       " -0.5806752884519819)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xgb5 = XGBClassifier(\n",
    "        learning_rate =0.1,\n",
    "        n_estimators=306,  #第二轮参数调整得到的n_estimators最优值\n",
    "        max_depth=5,\n",
    "        min_child_weight=1,\n",
    "        gamma=0,\n",
    "        subsample=0.3,\n",
    "        colsample_bytree=0.8,\n",
    "        colsample_bylevel = 0.7,\n",
    "        reg_alpha = 1.5,\n",
    "        reg_lambda = 1,\n",
    "        objective= 'multi:softprob',\n",
    "        seed=3)\n",
    "\n",
    "\n",
    "gsearch5 = GridSearchCV(xgb5, param_grid = param_test5, scoring='neg_log_loss',n_jobs=-1, cv=kfold)\n",
    "gsearch5.fit(X_train , y_train)\n",
    "\n",
    "gsearch5.grid_scores_, gsearch5.best_params_, gsearch5.best_score_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T22:58:25.708261Z",
     "start_time": "2018-10-27T22:58:25.618256Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split0_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split1_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split2_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split3_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split4_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([ 824.73157201,  882.05265036,  939.16111693,  971.74818072,\n",
       "         985.88098917, 1017.94042301,  889.32886682,  966.82269912,\n",
       "        1022.43948007, 1062.08554783, 1109.41985521, 1118.3887681 ,\n",
       "         957.72477875, 1060.88767929, 1137.93248596, 1154.32122335,\n",
       "        1219.36094351, 1222.95314894, 1024.78861456, 1143.33359489,\n",
       "        1229.50132337, 1282.50455513, 1289.91117864, 1260.57410064]),\n",
       " 'mean_score_time': array([2.63235049, 2.64435129, 2.48994236, 2.43773952, 2.37753592,\n",
       "        2.47114129, 2.54734569, 2.5147438 , 2.49294276, 2.41253805,\n",
       "        2.42533879, 2.44994025, 2.57214708, 2.51774392, 2.66315241,\n",
       "        2.5223443 , 2.48134184, 2.47274137, 2.56334667, 2.56874704,\n",
       "        2.50934367, 2.42713871, 2.57014709, 2.28813095]),\n",
       " 'mean_test_score': array([-0.58758715, -0.58546872, -0.58328148, -0.58288957, -0.58212445,\n",
       "        -0.58150413, -0.58726546, -0.58472653, -0.58324322, -0.58260144,\n",
       "        -0.58171581, -0.58067529, -0.58695634, -0.58601362, -0.58362715,\n",
       "        -0.58341059, -0.58153487, -0.58067709, -0.58649397, -0.58442472,\n",
       "        -0.58388152, -0.58226133, -0.58194446, -0.58084124]),\n",
       " 'mean_train_score': array([-0.50033705, -0.49614649, -0.49336118, -0.49132708, -0.49070636,\n",
       "        -0.49074649, -0.49664414, -0.4922842 , -0.48947679, -0.48808724,\n",
       "        -0.48751312, -0.48746379, -0.49374178, -0.48903621, -0.48633586,\n",
       "        -0.48456465, -0.48408442, -0.48435599, -0.49070252, -0.48678031,\n",
       "        -0.48398128, -0.48199789, -0.48182114, -0.48221491]),\n",
       " 'param_colsample_bytree': masked_array(data=[0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.7, 0.7, 0.7, 0.7, 0.7,\n",
       "                    0.7, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.9, 0.9, 0.9, 0.9,\n",
       "                    0.9, 0.9],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'param_subsample': masked_array(data=[0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.3, 0.4, 0.5, 0.6, 0.7,\n",
       "                    0.8, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.3, 0.4, 0.5, 0.6,\n",
       "                    0.7, 0.8],\n",
       "              mask=[False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False,\n",
       "                    False, False, False, False, False, False, False, False],\n",
       "        fill_value='?',\n",
       "             dtype=object),\n",
       " 'params': [{'colsample_bytree': 0.6, 'subsample': 0.3},\n",
       "  {'colsample_bytree': 0.6, 'subsample': 0.4},\n",
       "  {'colsample_bytree': 0.6, 'subsample': 0.5},\n",
       "  {'colsample_bytree': 0.6, 'subsample': 0.6},\n",
       "  {'colsample_bytree': 0.6, 'subsample': 0.7},\n",
       "  {'colsample_bytree': 0.6, 'subsample': 0.8},\n",
       "  {'colsample_bytree': 0.7, 'subsample': 0.3},\n",
       "  {'colsample_bytree': 0.7, 'subsample': 0.4},\n",
       "  {'colsample_bytree': 0.7, 'subsample': 0.5},\n",
       "  {'colsample_bytree': 0.7, 'subsample': 0.6},\n",
       "  {'colsample_bytree': 0.7, 'subsample': 0.7},\n",
       "  {'colsample_bytree': 0.7, 'subsample': 0.8},\n",
       "  {'colsample_bytree': 0.8, 'subsample': 0.3},\n",
       "  {'colsample_bytree': 0.8, 'subsample': 0.4},\n",
       "  {'colsample_bytree': 0.8, 'subsample': 0.5},\n",
       "  {'colsample_bytree': 0.8, 'subsample': 0.6},\n",
       "  {'colsample_bytree': 0.8, 'subsample': 0.7},\n",
       "  {'colsample_bytree': 0.8, 'subsample': 0.8},\n",
       "  {'colsample_bytree': 0.9, 'subsample': 0.3},\n",
       "  {'colsample_bytree': 0.9, 'subsample': 0.4},\n",
       "  {'colsample_bytree': 0.9, 'subsample': 0.5},\n",
       "  {'colsample_bytree': 0.9, 'subsample': 0.6},\n",
       "  {'colsample_bytree': 0.9, 'subsample': 0.7},\n",
       "  {'colsample_bytree': 0.9, 'subsample': 0.8}],\n",
       " 'rank_test_score': array([24, 19, 13, 11,  8,  4, 23, 18, 12, 10,  6,  1, 22, 20, 15, 14,  5,\n",
       "         2, 21, 17, 16,  9,  7,  3]),\n",
       " 'split0_test_score': array([-0.58310526, -0.5789768 , -0.57840291, -0.57660498, -0.57650255,\n",
       "        -0.57589755, -0.58104232, -0.57789039, -0.5767245 , -0.5760556 ,\n",
       "        -0.57523047, -0.57365074, -0.57893797, -0.57906417, -0.57682186,\n",
       "        -0.57756216, -0.57517471, -0.57394614, -0.58138198, -0.57842695,\n",
       "        -0.57685208, -0.57560111, -0.57618913, -0.57501312]),\n",
       " 'split0_train_score': array([-0.50178762, -0.49747134, -0.49426112, -0.49241313, -0.49124066,\n",
       "        -0.4919859 , -0.49839117, -0.49421865, -0.49066912, -0.48863655,\n",
       "        -0.48895139, -0.4888539 , -0.49553912, -0.4916558 , -0.48778423,\n",
       "        -0.48627433, -0.4862521 , -0.48541121, -0.49277243, -0.48931669,\n",
       "        -0.48535622, -0.48275373, -0.48220515, -0.48277674]),\n",
       " 'split1_test_score': array([-0.58512435, -0.58413795, -0.58146209, -0.58063601, -0.58135943,\n",
       "        -0.58151135, -0.5859906 , -0.58403401, -0.58240746, -0.58178871,\n",
       "        -0.58027703, -0.5799679 , -0.5864351 , -0.58465773, -0.58250497,\n",
       "        -0.58305255, -0.58008046, -0.58041855, -0.58589325, -0.58320624,\n",
       "        -0.58186282, -0.58099704, -0.58055361, -0.57891974]),\n",
       " 'split1_train_score': array([-0.49991307, -0.4958979 , -0.49317609, -0.49177789, -0.491292  ,\n",
       "        -0.49070646, -0.49668382, -0.4916785 , -0.48912893, -0.48760746,\n",
       "        -0.48743685, -0.48706707, -0.49419648, -0.48897898, -0.4865873 ,\n",
       "        -0.48446792, -0.48361555, -0.48428452, -0.49069648, -0.48618229,\n",
       "        -0.48409336, -0.48256722, -0.48165797, -0.48259391]),\n",
       " 'split2_test_score': array([-0.58951671, -0.58567275, -0.58439985, -0.58539552, -0.58262103,\n",
       "        -0.58202517, -0.58597678, -0.58514545, -0.58414761, -0.58382844,\n",
       "        -0.58262274, -0.58090144, -0.58775708, -0.58702911, -0.58425062,\n",
       "        -0.5843795 , -0.58253015, -0.58120818, -0.58541306, -0.58554287,\n",
       "        -0.58528412, -0.58302527, -0.58200295, -0.58126942]),\n",
       " 'split2_train_score': array([-0.50038543, -0.49616564, -0.4936193 , -0.49060895, -0.49059554,\n",
       "        -0.4898999 , -0.49662985, -0.49321566, -0.48914306, -0.48815712,\n",
       "        -0.4872793 , -0.4873977 , -0.49379771, -0.48948058, -0.48638092,\n",
       "        -0.48423325, -0.48377425, -0.48413268, -0.49021599, -0.48615301,\n",
       "        -0.4837795 , -0.48234469, -0.48108152, -0.48201676]),\n",
       " 'split3_test_score': array([-0.58942458, -0.58793382, -0.58480389, -0.58514884, -0.58459228,\n",
       "        -0.58459352, -0.59096559, -0.58750843, -0.5843711 , -0.58429746,\n",
       "        -0.5841733 , -0.58416441, -0.59119121, -0.58862661, -0.58599654,\n",
       "        -0.58572784, -0.58419406, -0.58326876, -0.58894877, -0.58640156,\n",
       "        -0.58621999, -0.58534988, -0.58512699, -0.58377163]),\n",
       " 'split3_train_score': array([-0.50048013, -0.49611712, -0.49323289, -0.4908942 , -0.49104092,\n",
       "        -0.49116433, -0.49682384, -0.49236296, -0.48919533, -0.48818069,\n",
       "        -0.48753935, -0.48761275, -0.49351353, -0.48810255, -0.48636684,\n",
       "        -0.4853271 , -0.48388801, -0.48469846, -0.49048496, -0.48617523,\n",
       "        -0.48275356, -0.48152644, -0.48266209, -0.48194184]),\n",
       " 'split4_test_score': array([-0.59076583, -0.59062384, -0.58733992, -0.58666363, -0.58554803,\n",
       "        -0.58349368, -0.59235356, -0.58905571, -0.58856704, -0.58703834,\n",
       "        -0.58627691, -0.58469317, -0.5904614 , -0.59069188, -0.58856323,\n",
       "        -0.58633177, -0.58569625, -0.58454498, -0.59083411, -0.58854724,\n",
       "        -0.58919019, -0.58633461, -0.58585081, -0.58523365]),\n",
       " 'split4_train_score': array([-0.49911899, -0.49508045, -0.49251648, -0.4909412 , -0.48936269,\n",
       "        -0.48997586, -0.49469204, -0.48994527, -0.48924751, -0.48785437,\n",
       "        -0.4863587 , -0.48638751, -0.49166203, -0.48696313, -0.48456003,\n",
       "        -0.48252064, -0.48289218, -0.48325309, -0.48934275, -0.48607433,\n",
       "        -0.48392374, -0.48079738, -0.48149896, -0.48174532]),\n",
       " 'std_fit_time': array([ 20.40111562,  18.08094925,  22.57873235,  35.78198252,\n",
       "         14.14251286,  21.79408097,  31.32065909,  33.92937467,\n",
       "         22.7908204 ,  11.99462747,  41.65289353,  46.09886852,\n",
       "         45.68252966,  48.40574514,  45.06385341,  37.07935677,\n",
       "         27.06428538,  21.46917048,  54.09015823,  44.50160729,\n",
       "         47.58403591,  59.33957195,  38.02105885, 108.28478246]),\n",
       " 'std_score_time': array([0.20861822, 0.10325582, 0.06009137, 0.06957015, 0.02195218,\n",
       "        0.13254742, 0.14053332, 0.10805161, 0.10724489, 0.1011879 ,\n",
       "        0.05428152, 0.09051789, 0.14922252, 0.1282096 , 0.11343849,\n",
       "        0.11309829, 0.10455721, 0.05190128, 0.07633886, 0.14530604,\n",
       "        0.12913738, 0.12671779, 0.30721848, 0.28332033]),\n",
       " 'std_test_score': array([0.00294468, 0.00391424, 0.00307076, 0.00374706, 0.00317012,\n",
       "        0.00300697, 0.00403956, 0.00384363, 0.00383722, 0.00367627,\n",
       "        0.00378928, 0.00395507, 0.00436873, 0.00399691, 0.00394807,\n",
       "        0.00313606, 0.00368632, 0.00366964, 0.00324105, 0.00345281,\n",
       "        0.00422144, 0.00381237, 0.00347704, 0.00362549]),\n",
       " 'std_train_score': array([0.00087068, 0.00076873, 0.00057284, 0.00066854, 0.00071528,\n",
       "        0.00077755, 0.00117447, 0.00144592, 0.00059763, 0.00034634,\n",
       "        0.00083216, 0.00080929, 0.00125042, 0.00156412, 0.00103127,\n",
       "        0.00124912, 0.00113797, 0.00070741, 0.00113292, 0.00126877,\n",
       "        0.00083119, 0.00073201, 0.00055356, 0.00039841])}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gsearch5.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-27T22:58:26.502306Z",
     "start_time": "2018-10-27T22:58:25.713261Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('mean_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('std_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split0_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split1_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split2_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split3_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n",
      "C:\\Users\\starwin\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\deprecation.py:122: FutureWarning: You are accessing a training score ('split4_train_score'), which will not be available by default any more in 0.21. If you need training scores, please set return_train_score=True\n",
      "  warnings.warn(*warn_args, **warn_kwargs)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best: -0.580675 using {'colsample_bytree': 0.7, 'subsample': 0.8}\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nCiF+yPuuKXlBGBpi9803WHbtwr2Fiwj//nvd+zfsnGDQIW1hrIBlsKQR3DyR7eu+VcmapV51uXj3\nKV4r/Hkck3HSyDq2dZjReAZB4UF8duQz4hOzVy5YUZS8p8/UlqWU8jHQBVgppawDtMzbbil5SRgY\nYPfVVxTt8QERPssJmz5ddzAxMoW234DXNoiLhuWt4fB32a4B36SKDQt71ebcrcf0XeHP02cZn6eV\nQyvGuY3j4I2DfOP3jdqwqCj5lD6BxDBpB7oH/7/ZrrzmhEZDyS+/pHgfLx6s8eXO1KnIxHTSlFRo\nCkP/hpqd4eA0WNkWIi5l67ota9gyv6crp0If0X9VAFGxGQeTntV70r9Wf7Zc2MKy02rvqaLkR/oE\nkqlod6dfklIGCCEqAKqYRAEghKDEuHFYDfTm4YaN3J44EZmQoPtgs2LQ1UdbbfHeBVj8Nhxfma1l\nwm1r2fFjdxeOX73PwDXHiYlL55pJRtUeRccKHZl3ch6/hPyS5espipK3Mt3ZXhC8qTvb9SWl5N68\n+dxbuJAinTpS6ptvEIaG6Td4dBN+HQpXDkOVttoaJ4WyXqjypxOhjN56isaVbVjqVQcTQ4N0j41L\niOPD/R/if8efec3n0ci+UZavpyhK1uTaznYhhL0Q4hchxF0hRJgQ4ichhH3udFPJD4QQ2Iz4CJtR\no3j823ZCmjbj5ief8GDjJmKvXk17b8KytHaZcNsZcOmgdpnw+R1Zvm7XOvZM7+zI4QvhfLjuJLHx\n6WcANjIw4sdmP1KlWBU+PfwpZ+6pXJ2Kkl/ok2trL9qUKL5JT/VGWxOkVR73LdeoEYn+Hu/dy5M9\ne4k6doz4pIJghra2mLu7YeFeH3N3d4ztU9Unu3sefvaGO6fB1RPaTgeTwlm65pqjV/ly21na1SrJ\nvB6uGBqk//fNveh79N7Zm+j4aHzb+VK2SNnsvE1FUfSg74hEn0ASKKV0yey5/EwFkqyTUhJ75SpR\n/n5EHvMjyt+fhPvane5G9vZJgcUdc3d3jKyKwaHp2jxdRctC5yXasr5Z4PPnZb7eEUxH51LM7u6C\ngSb9xJFXHl3B6w8vChsXxredL1ZmVjl6r4qi6JabgWQfsArYkPRUD6CflLJFTjv5sqhAknNSSp6F\nhBB1zI9Ifz+iAo6T+EhbDdG4XDnM3d2xqFgM85s+GMaGajc1NhkHhsZ6X2PRoUt8u+s8XWvbM7Ob\n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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x128deba8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# summarize results\n",
    "print(\"Best: %f using %s\" % (gsearch5.best_score_, gsearch5.best_params_))\n",
    "test_means = gsearch5.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = gsearch5.cv_results_[ 'std_test_score' ]\n",
    "train_means = gsearch5.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = gsearch5.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "pd.DataFrame(gsearch5.cv_results_).to_csv('my_preds_subsampleh_colsample_bytree_1.csv')\n",
    "\n",
    "# plot results\n",
    "test_scores = np.array(test_means).reshape(len(colsample_bytree), len(subsample))\n",
    "train_scores = np.array(train_means).reshape(len(colsample_bytree), len(subsample))\n",
    "\n",
    "for i, value in enumerate(colsample_bytree):\n",
    "    pyplot.plot(subsample, -test_scores[i], label= 'test_colsample_bytree:'   + str(value))\n",
    "    \n",
    "pyplot.legend()\n",
    "pyplot.xlabel( 'subsample' )                                                                                                      \n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'subsample_vs_colsample_bytree1.png' )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 调用模型进行测试"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 读取测试数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-28T00:06:28.768799Z",
     "start_time": "2018-10-28T00:06:24.883576Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "dpath = './data/'\n",
    "test = pd.read_csv(dpath +\"RentListingInquries_FE_test.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-28T00:06:28.868804Z",
     "start_time": "2018-10-28T00:06:28.774799Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "      <th>price_bathrooms</th>\n",
       "      <th>price_bedrooms</th>\n",
       "      <th>room_diff</th>\n",
       "      <th>room_num</th>\n",
       "      <th>Year</th>\n",
       "      <th>Month</th>\n",
       "      <th>Day</th>\n",
       "      <th>...</th>\n",
       "      <th>virtual</th>\n",
       "      <th>walk</th>\n",
       "      <th>walls</th>\n",
       "      <th>war</th>\n",
       "      <th>washer</th>\n",
       "      <th>water</th>\n",
       "      <th>wheelchair</th>\n",
       "      <th>wifi</th>\n",
       "      <th>windows</th>\n",
       "      <th>work</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2950</td>\n",
       "      <td>1475.000000</td>\n",
       "      <td>1475.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>11</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>2850</td>\n",
       "      <td>1425.000000</td>\n",
       "      <td>950.000000</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>24</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>3758</td>\n",
       "      <td>1879.000000</td>\n",
       "      <td>1879.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>3300</td>\n",
       "      <td>1650.000000</td>\n",
       "      <td>1100.000000</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>11</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2.0</td>\n",
       "      <td>2</td>\n",
       "      <td>4900</td>\n",
       "      <td>1633.333333</td>\n",
       "      <td>1633.333333</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>12</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 227 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   bathrooms  bedrooms  price  price_bathrooms  price_bedrooms  room_diff  \\\n",
       "0        1.0         1   2950      1475.000000     1475.000000        0.0   \n",
       "1        1.0         2   2850      1425.000000      950.000000       -1.0   \n",
       "2        1.0         1   3758      1879.000000     1879.000000        0.0   \n",
       "3        1.0         2   3300      1650.000000     1100.000000       -1.0   \n",
       "4        2.0         2   4900      1633.333333     1633.333333        0.0   \n",
       "\n",
       "   room_num  Year  Month  Day  ...   virtual  walk  walls  war  washer  water  \\\n",
       "0       2.0  2016      6   11  ...         0     0      0    0       0      0   \n",
       "1       3.0  2016      6   24  ...         0     0      0    1       0      0   \n",
       "2       2.0  2016      6    3  ...         0     0      0    0       0      0   \n",
       "3       3.0  2016      6   11  ...         0     0      0    0       0      0   \n",
       "4       4.0  2016      4   12  ...         0     0      0    1       0      0   \n",
       "\n",
       "   wheelchair  wifi  windows  work  \n",
       "0           0     0        0     0  \n",
       "1           0     0        0     0  \n",
       "2           0     0        0     0  \n",
       "3           1     0        0     0  \n",
       "4           0     0        0     0  \n",
       "\n",
       "[5 rows x 227 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-28T00:07:20.295746Z",
     "start_time": "2018-10-28T00:07:20.284745Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_test = test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 调用模型对测试数据集进行测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-28T00:14:37.565756Z",
     "start_time": "2018-10-28T00:14:22.846914Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_pred = gsearch5.predict_proba(X_test)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "输出结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-28T00:17:05.330208Z",
     "start_time": "2018-10-28T00:17:04.283148Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "output = pd.DataFrame(y_pred)\n",
    "output.to_csv(\"XGBoost_Result.csv\", index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
